import java.util.Stack;
//push() 入栈并返回该元素
//pop() 出栈并返回该元素
//peek() 获取栈顶元素
//size() 栈的有效元素个数
//empty() 判断是否为空
//contains() 判断是否有该元素
//search() 返回元素在栈中的位置（基于 1 的索引）
public class Main {
    public static void main(String[] args) {
        Stack<Integer> stack=new Stack<>();
        //入栈
        stack.push(1);
        stack.push(2);
        stack.push(3);
        stack.push(4);

        //栈的有效元素个数
        System.out.println(stack.size());

        //获取栈顶元素
        System.out.println(stack.peek());
        //打印栈
        System.out.println(stack);

        //出栈,一样可以获取栈顶元素，但是会把栈顶元素移除
        System.out.println(stack.pop());
        //打印栈
        System.out.println(stack);

        if(stack.empty()){
            System.out.println("栈空");
        }
        else{
            System.out.println(stack.size());
        }

        //入栈返回该元素
        System.out.println(stack.push(5));

        //判断栈是否有改元素
        System.out.println(stack.contains(5));

        //查找该元素在栈的位置（索引（从 1 开始）），如果不存在返回-1，
        //这个方法返回的是基于 1 的位置，表示从栈顶到目标元素的距离。
        System.out.println(stack.search(5));
        System.out.println(stack.search(1));
    }
}
